Concept Location and Program Comprehension in Service-Oriented Software
نویسنده
چکیده
The maintenance process of service-oriented software might be different from the maintenance of software built using established technologies. This research aims at an investigation of existing maintenance methods for concept location and program comprehension and their applicability to new service-oriented environments as well as development of new appropriate methods. This paper outlines the goals and shortly discusses how these can be achieved. 1. Research Objectives To discover a demanded PhD research topic, twelve maintainers with various experiences and from various domain areas were interviewed and observed in their daily work. Usually, maintainers obtain their tasks as customer messages in the textual form. They need to find a corresponding piece of code where problem domain concepts are implemented in order to locate problem code or to find a starting point for program comprehension. Maintainers look for both real world concepts (like invoice or customer) and technical concepts (like handling of a variable or an implementation of certain functionality). This process is an essential part of maintenance and is called concept location [10]. Inflexible software is a bottleneck when changing business processes within an enterprise what results in the loss of competitive advantage. One of the approaches dealing with repeatedly changing customer requirements is the iterative program development, enhancement and maintenance. However, for the iterative approach the rendering of a smooth maintenance process is highly important [10]. Many researchers and industry specialists aim at improvement of software flexibility and scalability and at acceleration software development. One of the proposed solutions is the service-oriented architecture (SOA). However, in many cases the implementation of SOA concepts results in high code complexity, hardly comprehensible architecture and tangled code organization. Consequently, this can complicate the maintenance of such systems. Even experienced interviewees reported that they have difficulties with the maintenance of new complex solutions. To support program comprehension and concept location activities this research project analyzes either established maintenance methods can be reused under new conditions and how these should be accommodated if necessary. This research will help maintainers by providing methods and tools for dealing with code complexity of SOA-based systems and will significantly improve the overall maintenance process. Maintenance costs can be estimated by up to 90% of the total cost of software [2]. Hence, a research accelerating maintenance of new architectures is very important. The first hypothesis is that the process of concept location and program comprehension depends on the selected architectural approach. The second hypothesis is that existing methods for concept location are limited applicable in maintenance of new systems. The final hypothesis is that a use of appropriate tools for SOA-based software will increase maintenance performance. Each maintenance method [1, 7, 9, 12] has its area of applicability. However, discussions of these methods’ advantages and disadvantages cover mostly only well established architectural paradigms like object-oriented design or legacy software [7, 12]. Several researchers have investigated how software design impacts the maintainability and have compared specialties of procedural, object-oriented and aspectoriented design (encapsulation, inheritance, etc.) [2, 5, 6]. Although a number of methods have been proposed, the maintainability of the SOA remains unattended. The difficulty of concept location in new architectures is often underestimated. Neither deep research nor industry experiences have confirmed or denied a better maintainability of new architectures yet. Many challenges are still open.
منابع مشابه
Probabilistic SynSet Based Concept Location
Concept location is a common task in program comprehension techniques, essential in many approaches used for software care and software evolution. An important goal of this process is to discover a mapping between source code and human oriented concepts. Although programs are written in a strict and formal language, natural language terms and sentences like identifiers (variables or functions n...
متن کاملAssisting Concept Location in Software Comprehension
Concept location, the problem of associating human oriented concepts with their counterpart solution domain concepts, is a fundamental problem that lies at the heart of software comprehension. Recent research has attempted to alleviate the impact of the concept location problem through the application of methods drawn from the Information Retrieval (IR) community. Here we present a new approach...
متن کاملComment-based Concept Location over System Dependency Graphs
Software maintenance is one of the most expensive phases of software development and understanding a program is one of the most important tasks of software maintenance. Before making the change to the program, software engineers need to find the location, or locations, where the changes will be made, they need to understand the program. Real applications are huge, sometimes old, were written by...
متن کاملTowards Enhanced Program Comprehension for Service Oriented Architecture (SOA) Systems
Service Oriented Architecture (SOA) is an emerging paradigm for orchestrating software components to build new composite applications that enable businesses, government agencies and other organizations to collaborate across institutional boundaries. SOA offers new languages and a variety of software development tools that enable software engineers to configure software as services and to interc...
متن کاملRequirements Traceability in Service-oriented Computing
Software understanding, as a primary cost in software engineering, becomes more difficult since the complexity of service-based applications is steadily growing. Although the post-traceability of requirements is considered a critical component in program comprehension, current approaches often comprise only manual, tedious, and laborious processes with a small degree of automation. In this pape...
متن کامل